#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>

#include "sessionfriendarea.h"
#include "messagedisplayarea.h"
#include "messagesendingarea.h"


QT_BEGIN_NAMESPACE
namespace Ui {
class MainWidget;
}
QT_END_NAMESPACE

class MainWidget : public QWidget
{
    Q_OBJECT
private:
    static MainWidget* instance;
    MainWidget(QWidget *parent = nullptr);

public:
    static MainWidget* GetInstance();
    ~MainWidget();

    void InitMainWin();
    void InitLeftWin();
    void InitMidWin();
    void InitRightWin();

    void SwitchToSession();
    void SwitchToFriend();

    void InitSignalSlot();

private:
    Ui::MainWidget *ui;

    // 主界面分为三部分：左侧、中间、右侧
    // QWidget win_left; // 使用指针
    QWidget* win_left;
    QWidget* win_mid;
    QWidget* win_right;

    QPushButton* user_avatar_btn; // 用户头像按钮
    QPushButton* session_tab_btn; // 会话标签页按钮
    QPushButton* friend_tab_btn;  // 好友列表页按钮

    enum ActiveTab
    {
        SESSION_LIST,
        FRIEND_LIST
    };

    ActiveTab activetab = SESSION_LIST; // 当前所在标签页：会话页、好友列表页

    QLineEdit* search_box; // 用户搜索框
    QPushButton* friends_add_btn; // 好友添加按钮
    SessionFriendArea* session_friend_area; // 会话/好友-区

    QPushButton* more_btn; // 点击显示会话详情按钮

    MessageDisplayArea* message_display_area;
    MessageSendingArea* message_sending_area;
};
#endif // MAINWIDGET_H
